/*
    This is a set of libraries to assist in OpenGl and Other Applications
    Copyright (C) 2008  The Modular Engine Team

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/// \file TinyXMLInterface.h
/// \brief Contains classes interfacing with TinyXML

#ifndef TINYXMLINTERFACE_H
#define TINYXMLINTERFACE_H

// Uncomment if it ends up we don't want to use STL
#define TIXML_USE_STL

#include "Singleton.h"
//#define TIXML_USE_STL
#include "tinyxml/tinystr.h"
#include "tinyxml/tinyxml.h"

#undef CLASSDECL
#ifdef TINYXMLINTERFACE
	#define CLASSDECL __declspec(dllexport)
#else
	#pragma comment( lib, "TinyXML.lib" )
	#define CLASSDECL __declspec(dllimport)
#endif

namespace ModularEngine
{
	/// Interface to TinyXML

	/// Allows DLL interface to TinyXML using the ModularEngine 
	/// 
	class CLASSDECL XML: public Singleton<XML>
	{
	public:
		/// The XML file handle
		TiXmlDocument *mXMLDoc;
	public:
		/// Load the XML file to mxDoc
		int LoadFile( const char *pPath );

	};
}

#endif